The invention relates generally to graphical block diagram modeling.
Signal processing systems generally consist of a cascade of components that perform a series of signal operations and transformations to one or more input signals in order to obtain a set of desired output signals. In most real world applications, such systems are required to carry out the processing in real time to produce samples of the output signals as samples of the input signals become available. This processing may be carried out using one of the following two approaches: sample-based processing and frame-based processing. With a sample-based processing approach, each component consumes at most one sample of its input signal every time it executes. With a frame-based processing approach, each component consumes a batch or “frame” of contiguous samples of its input signal every time it executes.
Frame-based processing has two major advantages over sample-based processing. It decreases the number of times components need to communicate with each other in order to process a given number of samples. This reduction in communication decreases the messaging overhead between components both in software and hardware implementations of the overall system. Another scenario where frame-based processing reduces messaging overhead may be understood by considering a DSP system that is implemented as a cascade of a variety of components including an A/D converter. In many scenarios, the A/D converter is serviced by an interrupt service routine (ISR). Each call to the ISR has a fixed performance overhead regardless of the number of samples obtained from the A/D at each interrupt. Therefore, it is beneficial to reduce the number of times the ISR is executed by bundling up frames of samples during each call to the ISR.
There are also a variety of signal operations and transformations that have more efficient algorithmic implementations when more than one sample is processed at each execution step of the algorithm. An example of such an operation is Finite Impulse Response (FIR) digital filtering, which may be implemented either through a direct sample-based convolution or through the frame-based Overlap-Add (OLA) Algorithm.
Graphical block-diagram based tools attempt to simplify the process of conceptualizing, designing, simulating, and finally implementing (in hardware) custom signal processing systems. In a graphical context, a block diagram is a representation of a real-world system through a graph containing nodes (referred to as “blocks”) interconnected by arcs (referred to as “lines”). Blocks are functional entities that perform mathematical operations and transformations on the data being processed by a system. The lines represent streams of data (called “signals”) flowing between the various blocks.
Specialized signal processing hardware such as A/D converters, D/A converters, and signal processors also offer inherent support for frame-based processing, thus making it important for block diagram tools which allow users to map their systems from concept to hardware implementation to provide such frame-based processing support.
Prior graphical block diagram modeling tools offer some measure of frame-based processing support. Such support, which suffers from some limiting restrictions, falls into one of two categories. One category of products employ a global frame-processing mechanism. That is, users have the option to specify whether or not the blocks in the block diagram are operating in frame-based or sample-based mode. When operating in frame-based mode, users have the ability to specify the number of samples in each frame of data. Thus, there is the ability to toggle frame-processing for the entire block-diagram. The Hypersignal package from Hyperception is an example of a product that falls into this category. One drawback to using a global frame-processing setting, however, is that users cannot build heterogeneous systems that either (i) mix frame- and sample-based sub-components, or (ii) mix several sub-components with different frame sizes.
A second category of frame-based processing support provides users with the ability to toggle frame-processing for each block. That is, users have the ability to specify whether or not each block is operating in frame-based mode. In addition, users can specify the size of the frame at each block. This type of scheme was implemented in Version 2.0 of the DSP Blockset for Simulink®, available from The MathWorks, Inc. While the latter block-specific toggling approach allows users to build heterogeneous systems (systems that have sub-components with both frame- and sample-based characteristics), it is fairly cumbersome and error-prone because the user is forced to enter redundant frame information at each primitive.